<?php

/**
 * Permite cambiar las contraseñas de acceso a usuarios, al personal operativo 
 * y contraseña personal
 * @package simertweb
 * @subpackage controllers 
 * @category Administración, Recaudación
 * @author Grecia Espinoza <mrcl2587@gmail.com>
 * @author Juan Maldonado  <jgmaldonadoj@gmail.com>
 * @version 1.0 
 */
class Cambiar_contrasenia extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->model('mpersona');
        $this->load->model('mempleado');
        $this->load->model('mrol');
        $this->load->model('acceso');
    }

    /**
     * Muestra la lista de usuarios y controladores
     * @param type $data2 es el criterio de búsqueda
     */
    function index($data2 = "") {
        if ($this->acceso->sesion() == 1) {
            $datax['var'] = $data2;
            $data['usuarios'] = $this->mempleado->listar_usuarios_clave();
            $this->load->view('includes/menu_izquierdo');
            $this->load->view('includes/cabecera', $datax);
            $this->load->view('cambiar_contrasenia', $data);
            $this->load->view('includes/footer');
        } else {
            $$this->load->view('autenticacion');
        }
    }

    /**
     * Permite buscar un usuario o controlador
     * @param type $data2 es el criterio dr búsqueda
     */
    function listarUsuarios($data2 = "") {
        $this->form_validation->set_rules('buscar', 'Buscar', 'required', 'trim');
        $datax['var'] = $data2;
        if ($this->form_validation->run() === TRUE) {
            $data['listausuarios'] = $this->mempleado->listarUsuario_clave($_POST["buscar"]);
            $this->load->view('includes/menu_izquierdo');
            $this->load->view('includes/cabecera', $datax);
            $this->load->view('cambiar_contrasenia', $data);
            $this->load->view('includes/footer');
        } else {
            $data = FALSE;
            $this->index($data);
        }
    }

    /**
     * Carga los datos de un usuario o controlador en la interfaz
     */
    function cargar_datos() {
        $this->form_validation->set_rules('lista', 'Usuarios', 'required', 'trim');
        if ($this->form_validation->run() === TRUE) {
            $data['usuario'] = $this->mempleado->datos_usuario($_POST["lista"]);
            $this->load->view('includes/menu_izquierdo');
            $this->load->view('includes/cabecera');
            $this->load->view('cambiar_contrasenia', $data);
            $this->load->view('includes/footer');
        } else {
            $data = FALSE;
            $this->index($data);
        }
    }

    /**
     * Permite cambiar la contraseña de acceso de un controlador o de un usuario
     * del sistema
     */
    function cambiar_clav() {
        $this->form_validation->set_rules('nombreusuario', 'Nombre de Usuario', 'requiredtrim');
        $this->form_validation->set_rules('confirmarcontrasenia', 'Confirmar Contrasenia', 'required|trim|min_length[8]');
        $this->form_validation->set_rules('nuevacontrasenia', 'Nueva Contraseña', 'required|matches[confirmarcontrasenia]|min_length[8]');
        if ($this->form_validation->run() === TRUE) {
            $data['message'] = '';
            $this->mempleado->cambiar_clave($_POST["nombreusuario"], $_POST["nuevacontrasenia"]);
            $this->load->view('includes/menu_izquierdo');
            $this->load->view('includes/cabecera');
            $this->load->view('includes/mensaje_exito', $data);
            $this->load->view('includes/footer');
        } else {
            $data = TRUE;
            $this->index($data);
        }
    }

    function usuario_actual_administracion() {
        if ($this->acceso->sesion() == 1) {
            $usuario = $this->session->userdata('usuario');
            $data['usuario'] = $this->mempleado->datos_usuario($usuario);
            $this->load->view('includes/menu_izquierdo');
            $this->load->view('includes/cabecera');
            $this->load->view('cambiar_contrasenia_personal', $data);
            $this->load->view('includes/footer');
        } else {
            $this->load->view('autenticacion');
        }
    }

    function usuario_actual_recaudacion() {
        if ($this->acceso->sesion() == 2) {
            $usuario = $this->session->userdata('usuario');
            $data['usuario'] = $this->mempleado->datos_usuario($usuario);
            $this->load->view('includes/menu_izquierdo1');
            $this->load->view('includes/cabecera1');
            $this->load->view('cambiar_contrasenia_personal', $data);
            $this->load->view('includes/footer');
        } else {
            $this->load->view('autenticacion');
        }
    }

    /**
     * Permite cambiar la contraseña de acceso personal
     */
    function cambiar_clave_personal() {
        $this->form_validation->set_rules('nombreusuario', 'Nombre de Usuario', 'required', 'trim');
        $this->form_validation->set_rules('contraseniaoculta', 'Contraseña Actual', 'required', 'trim');
        $this->form_validation->set_rules('confirmarcontrasenia', 'Confirmar Contrasenia', 'required', 'trim|min_length[8]');
        $this->form_validation->set_rules('contraseniaactual', 'Contraseña Ingresada', 'required|callback_contraseña_check()');
        $this->form_validation->set_rules('nuevacontrasenia', 'Nueva Contraseña', 'required|matches[confirmarcontrasenia]|min_length[8]');
        if ($this->form_validation->run() === TRUE) {
            if ($this->acceso->sesion() == 1) {
                $data['message'] = '';
                $this->mempleado->cambiar_clave($_POST["nombreusuario"], $_POST["nuevacontrasenia"]);
                $this->load->view('includes/menu_izquierdo');
                $this->load->view('includes/cabecera');
                $this->load->view('includes/mensaje_exito', $data);
                $this->load->view('includes/footer');
            } else {
                $data['message'] = '';
                $this->mempleado->cambiar_clave($_POST["nombreusuario"], $_POST["nuevacontrasenia"]);
                $this->load->view('includes/menu_izquierdo1');
                $this->load->view('includes/cabecera1');
                $this->load->view('includes/mensaje_exito', $data);
                $this->load->view('includes/footer');
            }
        } else {
            if ($this->acceso->sesion() == 2) {
                $this->usuario_actual_recaudacion();
            }
            if ($this->acceso->sesion() == 1) {
                $this->usuario_actual_administracion();
            }
        }
    }

    /**
     * Valida el ingreso de la nueva contraseña
     * @return boolean
     */
    function contraseña_check() {
        if ($_POST["contraseniaoculta"] === md5($_POST["nuevacontrasenia"])) {
            return TRUE;
        } else {
            $this->form_validation->set_message(' contraseña_check()', '<p style="color: red">La contraseña acual es incorrecta</p>');
            return FALSE;
        }
    }

}

?>
